#include <iostream>
#include <set>

using namespace std;

bool fncomp (int lhs, int rhs) {return lhs < rhs;}

struct classcomp {
	bool operator() (const int& lhs, const int& rhs) const
	{return lhs < rhs;}
};

int main ()
{
	set<int> first;

	int myints[] = { 10, 20, 30, 40, 50 };
	set<int> second (myints, myints + 5);

	set<int> third(second);

	set<int> fourth(second.begin(), second.end());

	set<int,classcomp> fifth;

	bool(*fn_pt)(int, int) = fncomp;
	set<int,bool(*)(int, int)> sixth(fn_pt);

	return 0;
}
